<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>

<body>

</body>

</html>

<script>
  /* 一、
    因为 JS是 动态 弱类型语言，所以 JS会想方设法地 不报错（执行代码）。
      这也是 JS容易学的 根本原因。
  */

  var data = 123 + '456'; // '123456'
  // 解释：上述的结果 '123456'，本质就是 「字符串拼接」
  console.log(11 + data + 'abc') // '11123456abc'
  console.log(11 + 22 + '33'); //  '3333'

  /* 二、 ➕， 左右两侧，只要有一侧是 字符串，则 `+` 的作用是：「字符串拼接」

  案例1：
    var data = 123 + '456'; // '123456'
    // 解释：上述的结果 '123456'，本质就是 「字符串拼接」
    console.log(data + 'abc') // '123456abc'

  案例2：
    console.log(11 + 22 + '33'); //  '3333'

    执行步骤：
      第一步：11 + 22  -> 33
      第二步： 33 + '33'  -> '3333' 
*/

  /* 三、JS 是 「动态」 语言？
    即 JS 会 想方设法 地执行代码：
      JS 执行代码的逻辑：若 某些 运算符，左右两侧 的数据类型不一致，
        则会在执行代码的时候，“动态地” 将 数据类型，转成 同一类数据类型，以便 代码执行下去。
  
        举例：  ` 11 + 'abc' `
          动态地将 11 转成 字符串 '11'， 再进行  `'11' + 'abc'` 的字符串拼接计算。


    总结：上述动态地将 数字11 转换成 字符串 '11'，其又被称为「隐式转换」。
  
  */
</script>